import Vue from 'vue'
import Vuex from 'vuex'
import { getItem, setItem } from '@/utils/storage'
Vue.use(Vuex)

// 为避免存取名字不一致
const USER_KEY = 'hh-user'

export default new Vuex.Store({
  state: {
    // 用容器的目的,第一是存取方便,第二是起到一个响应式的作用
    // 容器里的东西是回话级的,刷新就会没有了,不是持久化的
    // 初始化数据,从本地获取需要初始化的数据
    // 从本地获取的是json格式的字符串我们需要转化为对象 JSON.parse(window.localStorage.getItem('user))
    user: getItem(USER_KEY) // 当前登录用户的登录状态 (token等数据)
  },
  mutations: { // 唯一可以修改state的方式
    setUser (state, data) {
      state.user = data
      // 为了方式页面刷新,数据丢失,我们还需要把数据放到本地存储中,这里仅仅是为了持久化数据
      // 本地存储不能直接存储对象,还需要将对象转化为json格式的字符串才能存储 JSON.stringify(state.user)
      // window.localStorage.setItem('user', JSON.stringify(state.user))
      setItem(USER_KEY,state.user)
    }
  },
  actions: {
  },
  modules: {
  }
})
